package com.kunminx.puremusic.ui.bind;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import androidx.databinding.BindingAdapter;

import com.kunminx.architecture.utils.Utils;

/**
 * Create by KunMinX at 2020/3/13
 */
public class WebViewBindingAdapter {

  @SuppressLint("SetJavaScriptEnabled")
  @BindingAdapter(value = {"pageAssetPath"}, requireAll = false)
  public static void loadAssetsPage(WebView webView, String assetPath) {
    webView.setWebViewClient(new WebViewClient() {
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
        Uri uri = request.getUrl();
        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Utils.getApp().startActivity(intent);
        return true;
      }
    });
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDefaultTextEncodingName("UTF-8");
    webSettings.setSupportZoom(true);
    webSettings.setBuiltInZoomControls(true);
    webSettings.setDisplayZoomControls(false);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);
    String url = "file:///android_asset/" + assetPath;
    webView.loadUrl(url);
  }

  @SuppressLint("SetJavaScriptEnabled")
  @BindingAdapter(value = {"loadPage"}, requireAll = false)
  public static void loadPage(WebView webView, String loadPage) {
    webView.setWebViewClient(new WebViewClient());
    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDefaultTextEncodingName("UTF-8");
    webSettings.setSupportZoom(true);
    webSettings.setBuiltInZoomControls(true);
    webSettings.setDisplayZoomControls(false);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);
    webView.loadUrl(loadPage);
  }

}
